package com.fast.common.util.emuns;

import java.util.HashMap;
import java.util.Map;

/**
 * 状态码
 * @author ylc
 */
public enum StatusCode {
    /*常用的状态码*/
    //成功
    SUCCESS(200, "success"),
    //服务器内部错误
    SERVER_ERROR(500, "internal server error"),
    //请求格式错误、参数错误
    BAD_REQUEST(400, "bad request"),
    //未授权
    UNAUTHORIZED(1004, "unauthorized"),
    //未登录
    UNLOGIN(1003, "unlogin"),
    //请求的资源不存在、数据不存在
    NOT_FOUND(404, "not found"),
    //资源存在冲突、数据已存在
    CONFLICT(409, "conflict"),
    //违背数据完整性、当插入、删除和修改数据的时候，违背的数据完整性约束抛出的异常。例如：主键重复异常、存在外键关联数据依赖等
    DATA_INTEGRITY_VIOLATION_EXCEPTION(424, "data integrity violation exception"),
    //用户名或密码错误
    LOGIN_FAILED(1001, "无效的用户名或密码"),
    //验证码错误
    CAPTCHA_ERROR(1002, "验证码错误"),
    DISABLE(0, "禁用"),
    START(1, "启用"),
    //文件操作失败
    FILE_ERROR(1006, "file operate failure"),
    //未绑定手机号码
    NOT_BIND_MOBILE(40302, "not bind mobile"),
    //token过期
    TOKEN_EXPIRE(1005, "token expire"),
    ;

    /**
     * 状态码
     * */
    private int code;
    /**
     * 信息
     * */
    private String message;

    StatusCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
    public static Map<Integer, String> getMap(){
        Map<Integer, String> map = new HashMap<>();
        for (StatusCode statusCode : StatusCode.values()) {
            map.put(statusCode.getCode(), statusCode.getMessage());
        }
        return map;
    }
}
